# config/constants.py

# 全国省份城市数据
PROVINCE_CITY = {
    "北京": ["北京市"],
    "天津": ["天津市"],
    "河北": ["石家庄市", "唐山市", "秦皇岛市", "邯郸市", "邢台市", "保定市", "张家口市", "承德市", "沧州市", "廊坊市", "衡水市"],
    "山西": ["太原市", "大同市", "阳泉市", "长治市", "晋城市", "朔州市", "晋中市", "运城市", "忻州市", "临汾市", "吕梁市"],
    "内蒙古": ["呼和浩特市", "包头市", "乌海市", "赤峰市", "通辽市", "鄂尔多斯市", "呼伦贝尔市", "巴彦淖尔市", "乌兰察布市", "兴安盟", "锡林郭勒盟", "阿拉善盟"],
    "辽宁": ["沈阳市", "大连市", "鞍山市", "抚顺市", "本溪市", "丹东市", "锦州市", "营口市", "阜新市", "辽阳市", "盘锦市", "铁岭市", "朝阳市", "葫芦岛市"],
    "吉林": ["长春市", "吉林市", "四平市", "辽源市", "通化市", "白山市", "松原市", "白城市", "延边自治州"],
    "黑龙江": ["哈尔滨市", "齐齐哈尔市", "鸡西市", "鹤岗市", "双鸭山市", "大庆市", "伊春市", "佳木斯市", "七台河市", "牡丹江市", "黑河市", "绥化市", "大兴安岭地区"],
    "上海": ["上海市"],
    "江苏": ["南京市", "无锡市", "徐州市", "常州市", "苏州市", "南通市", "连云港市", "淮安市", "盐城市", "扬州市", "镇江市", "泰州市", "宿迁市"],
    "浙江": ["杭州市", "宁波市", "温州市", "嘉兴市", "湖州市", "绍兴市", "金华市", "衢州市", "舟山市", "台州市", "丽水市"],
    "安徽": ["合肥市", "芜湖市", "蚌埠市", "淮南市", "马鞍山市", "淮北市", "铜陵市", "安庆市", "黄山市", "滁州市", "阜阳市", "宿州市", "六安市", "亳州市", "池州市", "宣城市"],
    "福建": ["福州市", "厦门市", "莆田市", "三明市", "泉州市", "漳州市", "南平市", "龙岩市", "宁德市"],
    "江西": ["南昌市", "景德镇市", "萍乡市", "九江市", "新余市", "鹰潭市", "赣州市", "吉安市", "宜春市", "抚州市", "上饶市"],
    "山东": ["济南市", "青岛市", "淄博市", "枣庄市", "东营市", "烟台市", "潍坊市", "济宁市", "泰安市", "威海市", "日照市", "临沂市", "德州市", "聊城市", "滨州市", "菏泽市"],
    "河南": ["郑州市", "开封市", "洛阳市", "平顶山市", "安阳市", "鹤壁市", "新乡市", "焦作市", "濮阳市", "许昌市", "漯河市", "三门峡市", "南阳市", "商丘市", "信阳市", "周口市", "驻马店市"],
    "湖北": ["武汉市", "黄石市", "十堰市", "宜昌市", "襄阳市", "鄂州市", "荆门市", "孝感市", "荆州市", "黄冈市", "咸宁市", "随州市", "恩施自治州"],
    "湖南": ["长沙市", "株洲市", "湘潭市", "衡阳市", "邵阳市", "岳阳市", "常德市", "张家界市", "益阳市", "郴州市", "永州市", "怀化市", "娄底市", "湘西自治州"],
    "广东": ["广州市", "韶关市", "深圳市", "珠海市", "汕头市", "佛山市", "江门市", "湛江市", "茂名市", "肇庆市", "惠州市", "梅州市", "汕尾市", "河源市", "阳江市", "清远市", "东莞市", "中山市", "潮州市", "揭阳市", "云浮市"],
    "广西": ["南宁市", "柳州市", "桂林市", "梧州市", "北海市", "防城港市", "钦州市", "贵港市", "玉林市", "百色市", "贺州市", "河池市", "来宾市", "崇左市"],
    "海南": ["海口市"],
    "重庆": ["重庆市"],
    "四川": ["成都市", "自贡市", "攀枝花市", "泸州市", "德阳市", "绵阳市", "广元市", "遂宁市", "内江市", "乐山市", "南充市", "眉山市", "宜宾市", "广安市", "达州市", "雅安市", "巴中市", "资阳市", "阿坝自治州", "甘孜自治州", "凉山自治州"],
    "贵州": ["贵阳市", "六盘水市", "遵义市", "安顺市", "毕节市", "铜仁市", "黔西南自治州", "黔东南自治州", "黔南自治州"],
    "云南": ["昆明市", "曲靖市", "玉溪市", "保山市", "昭通市", "丽江市", "普洱市", "临沧市", "楚雄自治州", "红河自治州", "文山自治州", "西双版纳自治州", "大理自治州", "德宏自治州", "怒江自治州", "迪庆自治州"],
    "西藏": ["拉萨市", "阿里地区"],
    "陕西": ["西安市", "铜川市", "宝鸡市", "咸阳市", "渭南市", "延安市", "汉中市", "榆林市", "安康市", "商洛市"],
    "甘肃": ["兰州市", "嘉峪关市", "金昌市", "白银市", "天水市", "武威市", "张掖市", "平凉市", "酒泉市", "庆阳市", "定西市", "陇南市", "临夏自治州", "甘南自治州"],
    "青海": ["西宁市", "黄南自治州", "海南自治州", "果洛自治州", "玉树自治州", "海西自治州"],
    "宁夏": ["银川市", "石嘴山市", "吴忠市", "固原市", "中卫市"],
    "新疆": ["乌鲁木齐市", "克拉玛依市", "昌吉自治州", "博尔塔拉自治州", "巴音郭楞自治州", "阿克苏地区", "克孜勒苏柯尔克孜", "喀什地区", "和田地区", "伊犁自治州", "塔城地区", "阿勒泰地区"]
}

# 运营商号段（与接口返回的prefix对应）
OPERATOR_PREFIX = {
    "中国移动": ["134", "135", "136", "137", "138", "139", "147", "150", "151", "152", "157", "158", "159", "172", "178", "182", "183", "184", "187", "188", "198"],
    "中国联通": ["130", "131", "132", "145", "155", "156", "166", "171", "175", "176", "185", "186"],
    "中国电信": ["133", "149", "153", "173", "177", "180", "181", "189", "191", "199"]
}

# 末尾格式映射
END_PATTERNS = {
    "AAAA": "0000",  # 后四位相同
    "AAA": "000",    # 后三位相同
    "AAAB": "0001",  # 前三位相同，第四位不同
    "AABA": "0010",  # 前两位相同，第三位不同，第四位与前两位相同
    "AABB": "0011",  # 前两位相同，后两位相同
    "AABC": "0012",  # 前两位相同，后两位不同
    "ABAA": "0100",  # 第一位和后两位相同，第二位不同
    "ABAB": "0101",  # 第一位和第三位相同，第二位和第四位相同
    "ABAC": "0102",  # 第一位和第三位相同，第二位和第四位不同
    "ABBA": "0110",  # 第一位和第四位相同，第二位和第三位相同
    "ABBC": "0112",  # 第二位和第三位相同，第一位和第四位不同
    "ABCA": "0120",  # 第一位和第四位相同，第二位和第三位不同
    "ABCB": "0121",  # 第二位和第四位相同，第一位和第三位不同
    "ABCC": "0122",  # 第三位和第四位相同，第一位和第二位不同
    "ABCD": "0123"   # 四位都不同，按顺序排列
}

# 城市编码映射（高德/百度地图行政区划代码）
ADCODE_MAP = {
    # 北京
    "北京市":1101,
    
    # 天津
    "天津市":1201,
    
    # 河北
    "石家庄市":1301,
    "唐山市":1302,
    "秦皇岛市":1303,
    "邯郸市":1304,
    "邢台市":1305,
    "保定市":1306,
    "张家口市":1307,
    "承德市":1308,
    "沧州市":1309,
    "廊坊市":1310,
    "衡水市":1311,
    
    # 山西
    "太原市":1401,
    "大同市":1402,
    "阳泉市":1403,
    "长治市":1404,
    "晋城市":1405,
    "朔州市":1406,
    "晋中市":1407,
    "运城市":1408,
    "忻州市":1409,
    "临汾市":1410,
    "吕梁市":1411,
    
    # 内蒙古
    "呼和浩特市":1501,
    "包头市":1502,
    "乌海市":1503,
    "赤峰市":1504,
    "通辽市":1505,
    "鄂尔多斯市":1506,
    "呼伦贝尔市":1507,
    "巴彦淖尔市":1508,
    "乌兰察布市":1509,
    "兴安盟":1522,
    "锡林郭勒盟":1525,
    "阿拉善盟":1529,
    
    # 辽宁
    "沈阳市":2101,
    "大连市":2102,
    "鞍山市":2103,
    "抚顺市":2104,
    "本溪市":2105,
    "丹东市":2106,
    "锦州市":2107,
    "营口市":2108,
    "阜新市":2109,
    "辽阳市":2110,
    "盘锦市":2111,
    "铁岭市":2112,
    "朝阳市":2113,
    "葫芦岛市":2114,
    
    # 吉林
    "长春市":2201,
    "吉林市":2202,
    "四平市":2203,
    "辽源市":2204,
    "通化市":2205,
    "白山市":2206,
    "松原市":2207,
    "白城市":2208,
    "延边自治州":2224,
    
    # 黑龙江
    "哈尔滨市":2301,
    "齐齐哈尔市":2302,
    "鸡西市":2303,
    "鹤岗市":2304,
    "双鸭山市":2305,
    "大庆市":2306,
    "伊春市":2307,
    "佳木斯市":2308,
    "七台河市":2309,
    "牡丹江市":2310,
    "黑河市":2311,
    "绥化市":2312,
    "大兴安岭地区":2327,
    
    # 上海
    "上海市":3101,
    
    # 江苏
    "南京市":3201,
    "无锡市":3202,
    "徐州市":3203,
    "常州市":3204,
    "苏州市":3205,
    "南通市":3206,
    "连云港市":3207,
    "淮安市":3208,
    "盐城市":3209,
    "扬州市":3210,
    "镇江市":3211,
    "泰州市":3212,
    "宿迁市":3213,
    
    # 浙江
    "杭州市":3301,
    "宁波市":3302,
    "温州市":3303,
    "嘉兴市":3304,
    "湖州市":3305,
    "绍兴市":3306,
    "金华市":3307,
    "衢州市":3308,
    "舟山市":3309,
    "台州市":3310,
    "丽水市":3311,
    
    # 安徽
    "合肥市":3401,
    "芜湖市":3402,
    "蚌埠市":3403,
    "淮南市":3404,
    "马鞍山市":3405,
    "淮北市":3406,
    "铜陵市":3407,
    "安庆市":3408,
    "黄山市":3410,
    "滁州市":3411,
    "阜阳市":3412,
    "宿州市":3413,
    "六安市":3415,
    "亳州市":3416,
    "池州市":3417,
    "宣城市":3418,
    
    # 福建
    "福州市":3501,
    "厦门市":3502,
    "莆田市":3503,
    "三明市":3504,
    "泉州市":3505,
    "漳州市":3506,
    "南平市":3507,
    "龙岩市":3508,
    "宁德市":3509,
    
    # 江西
    "南昌市":3601,
    "景德镇市":3602,
    "萍乡市":3603,
    "九江市":3604,
    "新余市":3605,
    "鹰潭市":3606,
    "赣州市":3607,
    "吉安市":3608,
    "宜春市":3609,
    "抚州市":3610,
    "上饶市":3611,
    
    # 山东
    "济南市":3701,
    "青岛市":3702,
    "淄博市":3703,
    "枣庄市":3704,
    "东营市":3705,
    "烟台市":3706,
    "潍坊市":3707,
    "济宁市":3708,
    "泰安市":3709,
    "威海市":3710,
    "日照市":3711,
    "临沂市":3713,
    "德州市":3714,
    "聊城市":3715,
    "滨州市":3716,
    "菏泽市":3717,
    
    # 河南
    "郑州市":4101,
    "开封市":4102,
    "洛阳市":4103,
    "平顶山市":4104,
    "安阳市":4105,
    "鹤壁市":4106,
    "新乡市":4107,
    "焦作市":4108,
    "濮阳市":4109,
    "许昌市":4110,
    "漯河市":4111,
    "三门峡市":4112,
    "南阳市":4113,
    "商丘市":4114,
    "信阳市":4115,
    "周口市":4116,
    "驻马店市":4117,
    
    # 湖北
    "武汉市":4201,
    "黄石市":4202,
    "十堰市":4203,
    "宜昌市":4205,
    "襄阳市":4206,
    "鄂州市":4207,
    "荆门市":4208,
    "孝感市":4209,
    "荆州市":4210,
    "黄冈市":4211,
    "咸宁市":4212,
    "随州市":4213,
    "恩施自治州":4228,
    
    # 湖南
    "长沙市":4301,
    "株洲市":4302,
    "湘潭市":4303,
    "衡阳市":4304,
    "邵阳市":4305,
    "岳阳市":4306,
    "常德市":4307,
    "张家界市":4308,
    "益阳市":4309,
    "郴州市":4310,
    "永州市":4311,
    "怀化市":4312,
    "娄底市":4313,
    "湘西自治州":4331,
    
    # 广东
    "广州市":4401,
    "韶关市":4402,
    "深圳市":4403,
    "珠海市":4404,
    "汕头市":4405,
    "佛山市":4406,
    "江门市":4407,
    "湛江市":4408,
    "茂名市":4409,
    "肇庆市":4412,
    "惠州市":4413,
    "梅州市":4414,
    "汕尾市":4415,
    "河源市":4416,
    "阳江市":4417,
    "清远市":4418,
    "东莞市":4419,
    "中山市":4420,
    "潮州市":4451,
    "揭阳市":4452,
    "云浮市":4453,
    
    # 广西
    "南宁市":4501,
    "柳州市":4502,
    "桂林市":4503,
    "梧州市":4504,
    "北海市":4505,
    "防城港市":4506,
    "钦州市":4507,
    "贵港市":4508,
    "玉林市":4509,
    "百色市":4510,
    "贺州市":4511,
    "河池市":4512,
    "来宾市":4513,
    "崇左市":4514,
    
    # 海南
    "海口市":4601,
    
    # 重庆
    "重庆市":5001,
    
    # 四川
    "成都市":5101,
    "自贡市":5103,
    "攀枝花市":5104,
    "泸州市":5105,
    "德阳市":5106,
    "绵阳市":5107,
    "广元市":5108,
    "遂宁市":5109,
    "内江市":5110,
    "乐山市":5111,
    "南充市":5113,
    "眉山市":5114,
    "宜宾市":5115,
    "广安市":5116,
    "达州市":5117,
    "雅安市":5118,
    "巴中市":5119,
    "资阳市":5120,
    "阿坝自治州":5132,
    "甘孜自治州":5133,
    "凉山自治州":5134,
    
    # 贵州
    "贵阳市":5201,
    "六盘水市":5202,
    "遵义市":5203,
    "安顺市":5204,
    "毕节市":5205,
    "铜仁市":5206,
    "黔西南自治州":5223,
    "黔东南自治州":5226,
    "黔南自治州":5227,
    
    # 云南
    "昆明市":5301,
    "曲靖市":5303,
    "玉溪市":5304,
    "保山市":5305,
    "昭通市":5306,
    "丽江市":5307,
    "普洱市":5308,
    "临沧市":5309,
    "楚雄自治州":5323,
    "红河自治州":5325,
    "文山自治州":5326,
    "西双版纳自治州":5328,
    "大理自治州":5329,
    "德宏自治州":5331,
    "怒江自治州":5333,
    "迪庆自治州":5334,
    
    # 西藏
    "拉萨市":5401,
    "阿里地区":5425,
    
    # 陕西
    "西安市":6101,
    "铜川市":6102,
    "宝鸡市":6103,
    "咸阳市":6104,
    "渭南市":6105,
    "延安市":6106,
    "汉中市":6107,
    "榆林市":6108,
    "安康市":6109,
    "商洛市":6110,
    
    # 甘肃
    "兰州市":6201,
    "嘉峪关市":6202,
    "金昌市":6203,
    "白银市":6204,
    "天水市":6205,
    "武威市":6206,
    "张掖市":6207,
    "平凉市":6208,
    "酒泉市":6209,
    "庆阳市":6210,
    "定西市":6211,
    "陇南市":6212,
    "临夏自治州":6229,
    "甘南自治州":6230,
    
    # 青海
    "西宁市":6301,
    "黄南自治州":6323,
    "海南自治州":6325,
    "果洛自治州":6326,
    "玉树自治州":6327,
    "海西自治州":6328,
    
    # 宁夏
    "银川市":6401,
    "石嘴山市":6402,
    "吴忠市":6403,
    "固原市":6404,
    "中卫市":6405,
    
    # 新疆
    "乌鲁木齐市":6501,
    "克拉玛依市":6502,
    "昌吉自治州":6523,
    "博尔塔拉自治州":6527,
    "巴音郭楞自治州":6528,
    "阿克苏地区":6529,
    "克孜勒苏柯尔克孜":6530,
    "喀什地区":6531,
    "和田地区":6532,
    "伊犁自治州":6540,
    "塔城地区":6542,
    "阿勒泰地区":6543,
}